Skip to content

feat(plugin-a11y): align with plugin convention and add tsnapi snapshots#49

Merged
antfu merged 1 commit into
devframes:mainfrom
antfubot:feat/tsnapi-plugin-a11y
Jun 25, 2026
Merged

feat(plugin-a11y): align with plugin convention and add tsnapi snapshots#49
antfu merged 1 commit into
devframes:mainfrom
antfubot:feat/tsnapi-plugin-a11y

Conversation

@antfubot

Copy link
Copy Markdown
Collaborator

What

The a11y inspector was the one first-party plugin not covered by the shared
tsnapi API-snapshot guard: it shipped as a private @devframes/a11y app with
no library exports, so describePackagesApiSnapshots skipped it. This brings
it fully in line with the other plugins (plugin-inspect, plugin-terminals,
plugin-git, plugin-code-server) so its public surface is snapshotted too.

Changes

  • Rename + publish as a library. @devframes/a11y@devframes/plugin-a11y,
    un-privated, with a multi-entry exports map (., /node, /cli, /vite,
    /client) built by a 3-config tsdown setup mirroring plugin-inspect.
  • SPA relocation. The Solid panel moves src/clientsrc/spa (building to
    dist/spa) so /client can expose a clean, node-free browser module
    (connectA11y) at dist/client/index.mjs without colliding with the SPA assets.
  • New entry points. createA11yDevframe() factory (src/index.ts),
    setupA11y() (/node), createA11yCli() (/cli), a11yVitePlugin() (/vite).
  • Convention compliance. Adds the required devframe metadata fields
    (read from package.json), a typecheck script, devframe/vite peer deps,
    and sideEffects: false.
  • Repo wiring. alias.ts (+ regenerated tsconfig.base.json paths),
    turbo.json task rename, and five committed tsnapi snapshots.

The runtime id, RPC namespace, BroadcastChannel, and mount path
(devframe-a11y-inspector) are intentionally unchanged, so the dev-server and
static-build behaviour — and their tests — are untouched.

Verification

pnpm lint, pnpm test (513 passed), pnpm typecheck, and pnpm build all pass.
The snapshot suite now covers all five plugins; a second run is stable with no
rewrites.

This PR was created with the help of an agent.

@netlify

netlify Bot commented Jun 25, 2026

Copy link
Copy Markdown

Deploy Preview for devfra ready!

Name Link
🔨 Latest commit a99284f
🔍 Latest deploy log https://app.netlify.com/projects/devfra/deploys/6a3cd5e5b9d76d0008ea3e39
😎 Deploy Preview https://deploy-preview-49--devfra.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

Bring the a11y inspector in line with the other first-party plugins so it
participates in the shared tsnapi API-snapshot guard instead of being
skipped as a private package.

- rename `@devframes/a11y` -> `@devframes/plugin-a11y` and publish it as a
  multi-entry library (`.`, `/node`, `/cli`, `/vite`, `/client`) built with
  tsdown, mirroring plugin-inspect / plugin-terminals
- move the Solid panel SPA to `src/spa` so `/client` exposes a clean,
  node-free browser module while the panel keeps building to `dist/spa`
- add the required devframe metadata fields and a `typecheck` script
- wire the package into alias.ts, turbo.json, and the tsnapi suite, which
  now snapshots all five plugins
@antfubot antfubot force-pushed the feat/tsnapi-plugin-a11y branch from 3234ac9 to a99284f Compare June 25, 2026 07:16
@antfu antfu merged commit 9783716 into devframes:main Jun 25, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants